package com.ssy.lingxi.order.api.model.vo.response;

import java.io.Serializable;
import java.math.BigDecimal;

/**
 * 营销服务 - 查询订单商品金额等信息接口返回
 * @author 万宁
 * @version 2.0.0
 * @date 2021-12-29
 */
public class OrderMarketingDetailVO implements Serializable {
    private static final long serialVersionUID = 3818169182865124282L;

    public OrderMarketingDetailVO() {
    }

    public OrderMarketingDetailVO(Long orderId, Long skuId, Integer outerStatus, Boolean hasTax, BigDecimal taxRate, BigDecimal price, BigDecimal refPrice, BigDecimal quantity) {
        this.orderId = orderId;
        this.skuId = skuId;
        this.outerStatus = outerStatus;
        this.outerStatusName = "";
        this.hasTax = hasTax;
        this.taxRate = taxRate;
        this.amount = price.multiply(quantity);
        this.refAmount = refPrice.multiply(quantity);
    }

    /**
     * 订单Id
     */
    private Long orderId;

    /**
     * 商品SkuId
     */
    private Long skuId;

    /**
     * 订单外部状态枚举
     */
    private Integer outerStatus;

    /**
     * 订单外部状态名称
     */
    private String outerStatusName;

    /**
     * 是否含税
     */
    private Boolean hasTax;

    /**
     *  税率，（大于等于0小于等于1的小数，如无税率则为0）
     */
    private BigDecimal taxRate;

    /**
     * 商品单价 * 数量
     */
    private BigDecimal amount;

    /**
     * 到手价 * 数量
     */
    private BigDecimal refAmount;

    public Long getOrderId() {
        return orderId;
    }

    public void setOrderId(Long orderId) {
        this.orderId = orderId;
    }

    public Long getSkuId() {
        return skuId;
    }

    public void setSkuId(Long skuId) {
        this.skuId = skuId;
    }

    public Integer getOuterStatus() {
        return outerStatus;
    }

    public void setOuterStatus(Integer outerStatus) {
        this.outerStatus = outerStatus;
    }

    public String getOuterStatusName() {
        return outerStatusName;
    }

    public void setOuterStatusName(String outerStatusName) {
        this.outerStatusName = outerStatusName;
    }

    public Boolean getHasTax() {
        return hasTax;
    }

    public void setHasTax(Boolean hasTax) {
        this.hasTax = hasTax;
    }

    public BigDecimal getTaxRate() {
        return taxRate;
    }

    public void setTaxRate(BigDecimal taxRate) {
        this.taxRate = taxRate;
    }

    public BigDecimal getAmount() {
        return amount;
    }

    public void setAmount(BigDecimal amount) {
        this.amount = amount;
    }

    public BigDecimal getRefAmount() {
        return refAmount;
    }

    public void setRefAmount(BigDecimal refAmount) {
        this.refAmount = refAmount;
    }
}
